# numpy库 主要用于 数组的处理
import numpy as np
# matplotlib库 主要用于 基本绘图
import matplotlib.pyplot as plt

# 一张图 就是 一个三维数组
# 定义 (700, 700, 3) 的数组
# uint8 u表示unsigned无符号  int表示整数 8表示位数
# 8位无符号整数   取值范围是[0, 255]
img_arr = np.zeros((700,700,3), dtype=np.uint8)

# 利用切片进行绘图
# 1. 在黑色底色上绘制白色线条--平分7份每份是100px
# 2. 在对角线处绘制 100x100 大小的红色色块
for i in range(0, 700, 100):        # i 控制行
    for j in range(0, 700, 100):    # j 控制列
        # 画白线
        img_arr[i, :, :] = (255, 255, 255)
        img_arr[:, j, :] = (255, 255, 255)
        # 涂红色块
        if i!=0 and i!=600 and j!=0 and j!=600:
            if i==j or i+j==600:
                img_arr[i:i+100, j:j+100, :] = (255, 0, 0)

# 先来准备三张图，用于存储分离出来的图像
img_red = np.zeros_like(img_arr, dtype="u1")
img_green = np.zeros_like(img_arr, dtype="u1")
img_blue = np.zeros_like(img_arr, dtype="u1")

# 分离通道
img_red[:, :, 0] = img_arr[:, :, 0]
img_green[:, :, 1] = img_arr[:, :, 1]
img_blue[:, :, 2] = img_arr[:, :, 2]

# 进行绘制  观察画布上2行3列
plt.subplot(232), plt.imshow(img_arr), plt.axis("off")
plt.subplot(234), plt.imshow(img_red), plt.axis("off")
plt.subplot(235), plt.imshow(img_green), plt.axis("off")
plt.subplot(236), plt.imshow(img_blue), plt.axis("off")
plt.show()